#ifndef MPVPLAYER_H
#define MPVPLAYER_H

#include <QObject>
#include "./mpv/client.h"

class MpvPlayer : public QObject
{
    Q_OBJECT
public:
    explicit MpvPlayer(QWidget* videoRenderWnd = nullptr, QObject *parent = nullptr);
    ~MpvPlayer();

    // 处理mpv具体的事件
    void handleMpvEvent(mpv_event* event);
    // 播放视频
    void startPlay(const QString& videoPath);

    void play();
    void pause();

    // 播放视频
    void setPlaySpeed(double speed);

    // 静音功能
    void setMute(bool isMute);

    // 音量调节
    void setVolume(int64_t volume);

    // seek功能
    void setCurrentPlayPosition(int64_t seconds);
private slots:
    void onMpvEvents();



signals:
    // 当这个mpv触发事件时, 在回调函数中发射该信号, 由客户程序处理mpv事件
    void mpvEvents();

    // 通知界面
    void playPositionChanged(int64_t seconds);

private:
    mpv_handle* mpv = nullptr;
};

#endif // MPVPLAYER_H
